
#pragma once

#include "stdafx.h"

#include "image_acquisition_model.h"


// DeviceCapabilityStorage

class DeviceCapabilityStorage
{
public:
	DeviceCapabilityStorage();
	~DeviceCapabilityStorage()
	{
		delete m_cap;
		delete m_itemsSafeArray;
	}

	STDMETHOD(get_cap)(VARIANT* pVal);
	STDMETHOD(get_type)(VARIANT* pVal);
	STDMETHOD(get_valueType)(VARIANT* pVal);
	STDMETHOD(get_item)(VARIANT* pVal);
	STDMETHOD(get_count)(VARIANT* pVal);
	STDMETHOD(get_items)(VARIANT* pVal);
	STDMETHOD(get_defaultIndex)(VARIANT* pVal);
	STDMETHOD(get_currentIndex)(VARIANT* pVal);
	STDMETHOD(get_min)(VARIANT* pVal);
	STDMETHOD(get_max)(VARIANT* pVal);
	STDMETHOD(get_step)(VARIANT* pVal);
	STDMETHOD(get_defaultValue)(VARIANT* pVal);
	STDMETHOD(get_currentValue)(VARIANT* pVal);

public:

	void setData( BaseCap* cap );

private:

	BaseCap* m_cap;

	CComSafeArray<VARIANT>* m_itemsSafeArray;
};
